<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
	<xsl:template match="HeaderAndClass">
	
using System;
using System.Collections.Generic;
using System.Text;

using <xsl:value-of select="HeaderInfo/ProjectName"/>.Core.Domain;
using <xsl:value-of select="HeaderInfo/ProjectName"/>.Core.Domain.DataAccess;
using <xsl:value-of select="HeaderInfo/ProjectName"/>.Core.Interfaces;

namespace <xsl:value-of select="HeaderInfo/ProjectName"/>.Data.NHibernateDal
{
	<![CDATA[/// <summary>
	/// The NHibernate Data Object which implements the IDataObjectFactory
	/// </summary>]]>
	public class DataObjectFactory : IDataObjectFactory
	{

		<xsl:for-each select="Classes/Class">
		public I<xsl:value-of select="Name"/>DataObject Get<xsl:value-of select="Name"/>DataObject ( )
		{
			return new <xsl:value-of select="Name"/>DataObject ( );
		}</xsl:for-each>

		// Place any custom methods for each object within these classes.
		<xsl:for-each select="Classes/Class">
		public class <xsl:value-of select="Name"/>DataObject : DataObject&lt;<xsl:value-of select="Name"/> , Guid&gt;, 
			   I<xsl:value-of select="Name"/>DataObject { }
		</xsl:for-each>

	}



}

	
	</xsl:template>

</xsl:stylesheet>